﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Sistema_Totem.Presentacion.Presentador.Propuestas;
using Sistema_Totem.Presentacion.Contrato.Propuestas;
using System.Web.SessionState;
using Sistema_Totem.Clases;

namespace Sistema_Totem.Presentacion.Vista.Propuestas
{
    public partial class AgregarPropuestaSecciones : System.Web.UI.Page, IContratoAgregarPropuestaSecciones
    {
        private PresentadorAgregarPropuestaSecciones _presentador;

        /// <summary>
        /// Constructor de la pagina AgregarPropuestaSecciones
        /// </summary>
        public AgregarPropuestaSecciones()
        {
            _presentador = new PresentadorAgregarPropuestaSecciones(this);
        }

        /// <summary>
        /// Page Load de la pagina AgregarPropuesta, verifica si el proyecto tiene una propuesta
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Sesion["usuario"] == null || Sesion["proyecto"] == null || (Sesion["usuario"] as Usuario).TipoUsuario == "Administrador")
                    Response.Redirect("../Login/login.aspx");
                else
                _presentador.ValidarExistenciaPropuesta();
            }
        }

        #region Implementacion Contrato

        /// <summary>
        /// Get del label informativo
        /// </summary>
        public Label etiquetaMensajeInformativo
        {
            get { return LabelMensajeInformativo; }
        }

        /// <summary>
        /// Get del gridview que muestra las secciones
        /// </summary>
        public GridView gridSecciones
        {
            get { return GridViewSecciones; }
        }

        /// <summary>
        /// Get del boton Siguiente que pasa a la siguiente pagina
        /// </summary>
        public Button botonSiguiente
        {
            get { return ButtonSiguiente; }
        }

        /// <summary>
        /// Get de la variable sesion
        /// </summary>
        public HttpSessionState Sesion
        {
            get { return Session; }
        }


        #endregion Implementacion Contrto

        /// <summary>
        /// Metodo que se dispara al presionar el boton siguiente y 
        /// envia la lista de secciones seleccionadas a la siguiente pagina
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void siguiente_Click(object sender, EventArgs e)
        {
            Session["listaSeccionesPropuesta"] = _presentador.Siguiente();
            List<string> a = (List<string>)Session["listaSeccionesPropuesta"];
            if (a.Count==0)
            {
                LabelMensajeInformativo.Visible = true;
                LabelMensajeInformativo.Text = "Debe elegir al menos una sección";
            }
            else
            {
                Response.Redirect("../Propuestas/AgregarPropuesta.aspx");
            }
        }
    }
}